home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / applications / wp / fwmacros1.lha / UserMacros / english / LeftAlign.fw < prev    next >
Encoding:
Text File  |  1994-10-04  |  1.8 KB  |  69 lines

  1. /*
  2. $AUTHOR:  Fernando Nunes e Manuel Lemos (UpperDesign@zeus.ci.ua.pt)
  3. $VER: LeftAlign 1.01 (1.10.94)
  4.       Description:  ARexx macro for FinalWriter to horizontally align all
  5.                     selected graphics by the left coordinate of the
  6.                     leftmost object
  7. */
  8.  
  9. options results
  10.  
  11. /* obter uma lista dos objectos seleccionados */
  12. selecionados = 0
  13. FirstObject SELECTED
  14. do until result = 0
  15.   selecionados = selecionados + 1
  16.   objectid.selecionados = result
  17.   NextObject objectid.selecionados SELECTED
  18. end
  19.  
  20. if selecionados > 1 then
  21. do
  22.  
  23.   OBJECTO_LINHA = 2
  24.  
  25.   /* determinar a coordenada do objecto mais à esquerda */
  26.   do objecto = 1 to selecionados
  27.     GetObjectCoords objectid.objecto
  28.     coords = RESULT
  29.     PARSE VAR coords pagina esquerda cima direita baixo
  30.     if tipo = OBJECTO_LINHA & esquerda > direita then
  31.       esquerda = direita
  32.     if objecto = 1 | esquerda < mais_a_esquerda then
  33.       mais_a_esquerda = esquerda
  34.   end
  35.  
  36.   /* mover os objectos para a esquerda */
  37.   do objecto = 1 to selecionados
  38.     GetObjectCoords objectid.objecto
  39.     coords = RESULT
  40.     PARSE VAR coords pagina esquerda cima direita baixo
  41.     GetObjectType objectid.objecto
  42.     tipo = result
  43.  
  44.     /* linhas */
  45.     if tipo = OBJECTO_LINHA then
  46.       do
  47.         if esquerda < baixo then
  48.           do
  49.             direita = mais_a_esquerda + direita - esquerda
  50.             esquerda = mais_a_esquerda
  51.           end
  52.         else
  53.           do
  54.             esquerda =  mais_a_esquerda + esquerda - direita
  55.             direita = mais_a_esquerda
  56.           end
  57.       end
  58.     else
  59.       esquerda = mais_a_esquerda
  60.     SetObjectCoords objectid.objecto pagina esquerda cima direita baixo
  61.   end
  62.  
  63.   /* voltar a reselecionar todos os objectos selecionados antes */
  64.   do objecto = 1 to selecionados
  65.     SelectObject objectid.objecto MULTIPLE
  66.   end
  67.   redraw
  68. end
  69.